#ifndef __BLACK_TRIGO_H__
#define __BLACK_TRIGO_H__

#include "maths/default.h"
#include <math.h>
#include <float.h>

namespace black
{
	const float F_PI		= 3.14159265358979323846f;
	const float F_PI_2		= 1.57079632679489661923f;
	const float F_3_PI_2	= F_PI + F_PI_2;
	const float F_PI_3		= (float)( 3.14159265358979323846 / 3. );
	const float F_PI_4		= 0.785398163397448309616f;
	const float F_INV_PI	= 0.318309886183790671538f;
	const float F_INV_2_PI	= 1.f / ( 2.f * F_PI );
	const float F_2_INV_PI	= 0.636619772367581343076f;
	const float F_2_PI		= F_PI * 2.f;

	bFORCEINLINE float	cos ( float x );
	bFORCEINLINE float	sin ( float x );
	bFORCEINLINE void	sinCos( float& fSin, float& fCos, const float fAngle );
	bFORCEINLINE float	cosFast( float x );
	bFORCEINLINE float	sinFast( float x );
	bFORCEINLINE void	fastSinCos( float& fSin, float& fCos, const float fAngle );
	bFORCEINLINE float	tan ( float x );
	bFORCEINLINE float	acos ( float x );
	bFORCEINLINE float	acosSafe ( float x );
	bFORCEINLINE float	asin ( float x );
	bFORCEINLINE float	asinSafe ( float x );
	bFORCEINLINE float	atan ( float x );
	bFORCEINLINE float	atan2 ( float x, float y );
	bFORCEINLINE float	mod2pi ( float x );
}

#include "maths/inl/trigo.inl"

#endif // __BMATH_TRIGO_H__
//---------------------------------------------------------------------------------------
// Copyright (c) 2009 Jounayd Id Salah.
// All rights reserved.
//---------------------------------------------------------------------------------------
